<?php
if ( !defined('IN_SCRIPT') ) { header("Location: index.php"); exit;}

// Подключение к базе данных
function connectToDB() {
	global $dblink, $dbhost, $dbuser, $dbpass, $dbname, $query_count, $lang;
	
	$query_count = 0;
    $dblink = mysql_pconnect("$dbhost", "$dbuser", "$dbpass");
    if($dblink === false) { 
        fn_log("MySQL connection error."); 
        die($lang['db_connection_error']); 
    }
	if (mysql_select_db("$dbname", $dblink) === false ) {
        fn_log("Невозможно открыть БД: $dbname. Возможная ошибка: ".mysql_error()); 
        die($lang['db_connection_error']);
    }
    
    // устраняет проблему с буквой "ш" и "И"
    db_query("SET NAMES 'utf8' COLLATE 'utf8_general_ci'");
} 


// Запрос к базе данных
function db_query($query, $return_affected_rows = false) 
{
	global $dblink, $query_count, $lang;
	$result = false;
    
	$query_count++;
	$result = mysql_query($query, $dblink);
    if($result === false) {
        fn_log("MySQL Error: ".mysql_error()."<br><br>$query");
        die($lang['db_query_error']);
    }
	return $return_affected_rows ? mysql_affected_rows($dblink) : $result;
}
           

// Добавление в таблицу ряда по массиву значений
// При успешном добавлении возвращает ID добавленной записи
function db_insert ($data, $array = true, $table_name = '', $replace = false) 
{
	global $dblink;
	
	if(!empty($data)) {
        if($array && !empty($table_name))
		    $query = (($replace == true) ? 'REPLACE' : 'INSERT') . " INTO $table_name (`".implode('`, `', array_keys($data))."`) VALUES ('".implode('\', \'', array_values($data))."');";
        else
            $query = $data;
		return (db_query($query) == false) ? false : mysql_insert_id($dblink);
	}

	return false;
}

// Обновление таблицы из массива
function db_update_by_array ($table_name, $data, $where = '') 
{
	$q = '';
	if(!empty($table_name) && !empty($data)) {
		foreach($data as $k => $v) {
			$q .= ($q ? ", " : "") . "`" . $k . "`='" . $v . "'";
		}
		return db_query("UPDATE `$table_name` SET $q" . ($where ? " WHERE " . $where : ""));
	}
	return false;
}

function safe_to_query($str) {
    global $dblink;
    if(defined('QUOTES_ENABLED')) $str = stripslashes($str);
    return mysql_real_escape_string($str, $dblink);
}
?>